package com.mars.admin.modules.post.mapper;

import com.mars.admin.modules.post.entity.PostTopic;
import com.mybatisflex.core.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 帖子话题关联Mapper接口
 *
 * @author Mars
 * @version 1.0
 * @date 2025-01-07
 */
@Mapper
public interface PostTopicMapper extends BaseMapper<PostTopic> {

    /**
     * 根据帖子ID删除关联
     *
     * @param postId 帖子ID
     * @return 删除数量
     */
    int deleteByPostId(@Param("postId") Long postId);

    /**
     * 根据话题ID删除关联
     *
     * @param topicId 话题ID
     * @return 删除数量
     */
    int deleteByTopicId(@Param("topicId") Long topicId);

    /**
     * 根据帖子ID查询关联的话题
     *
     * @param postId 帖子ID
     * @return 话题ID列表
     */
    List<Long> selectTopicIdsByPostId(@Param("postId") Long postId);

    /**
     * 根据话题ID查询关联的帖子
     *
     * @param topicId 话题ID
     * @return 帖子ID列表
     */
    List<Long> selectPostIdsByTopicId(@Param("topicId") Long topicId);

    /**
     * 批量插入帖子话题关联
     *
     * @param postTopics 关联列表
     * @return 插入数量
     */
    int batchInsert(@Param("list") List<PostTopic> postTopics);
} 